#ifndef _MSG_INCLUDE_H_
#define _MSG_INCLUDE_H_

#ifdef  __cplusplus
extern "C" {
#endif

#include <stdarg.h>
#include <stdio.h>
#include "define.h"

#undef	USE_PRINTF_MACRO

int last_error(void);


#ifndef	USE_PRINTF_MACRO


void PRINTF(1, 2) msg_info(const char *fmt,...);

void PRINTF(1, 2) msg_warn(const char *fmt,...);

void PRINTF(1, 2) msg_error(const char *fmt,...);


void PRINTF(1, 2) msg_fatal(const char *fmt,...);

#else

#include <stdio.h>

#undef	msg_info
#undef	msg_warn
#undef	msg_error
#undef	msg_fatal

#define	msg_info	msg_printf
#define	msg_warn	msg_printf
#define	msg_error	msg_printf
#define	msg_fatal	msg_printf

#endif

void PRINTF(1, 2) msg_printf(const char *fmt,...);

#ifdef  __cplusplus
}
#endif

#endif
